; <lemma>
;  <title>SimpleLyra.7</title>
;  <origin>SimpleLyra | Component_ref3 | step_success/inv1/INV</origin>
(benchmark simple_lyra_7
;  <theories>
;    <theory name="linear_arith"/>
;    <theory name="basic_set"/>
;  </theories>
  :logic AUFLIA
;  <typenv>
;    <variable name="x" type="INTEGER"/>
;    <variable name="y" type="INTEGER"/>
;    <variable name="z" type="INTEGER"/>
;  </typenv>
  :extrafuns ((x Int) (y Int) (z Int))
  :extramacros (
		 (Nat (lambda (?i Int) . (<= 0 ?i)))
		 (in (lambda (?x 't) (?p ('t boolean)) . (?p ?x)))
		 (range (lambda (?i1 Int) (?i2 Int) .
			  (lambda (?i Int) .
			    (and (<= ?i1 ?i) (<= ?i ?i2)))))
		 (subseteq
		   (lambda (?p ('t boolean)) (?q ('t boolean)) .
		     (forall (?x 't). 
		       (implies (?p ?x) (?q ?x)))))
		 (subset
		   (lambda (?p ('t boolean)) (?q ('t boolean)) .
		     (and (subseteq ?p ?q)
		       (not (= ?p ?q)))))
		 )
;  <hypothesis>x : NATURAL</hypothesis>
;  <hypothesis>y : NATURAL</hypothesis>
;  <hypothesis>z : NATURAL</hypothesis>
;  <hypothesis needed="true">x &lt; y</hypothesis>
  :assumption (in x Nat)
  :assumption (in y Nat)
  :assumption (in z Nat)
  :assumption (<= x y)
;  <goal>x .. z <<: y .. z</goal>
  :formula
  (not
      (subset (range x z) (range y z))
    )
)
    